/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;
import AO.Student;
import java.sql.*;
import dbconnector.DBDriver;
import java.io.*;
import java.net.URI;

/**
 *
 * @author Administrator
 */
public class StudentDAO 

{

     public static boolean save(Student st) throws Exception
  {
    try
    {
        {
            File file=new File("D:/student.png");
            System.out.println(file.getCanonicalPath());
//byte[] dataBytes=getBytesFromFile(file);
FileInputStream fis=new FileInputStream(file);
 // String bytes = new String(dataBytes);

      PreparedStatement pstmt = DBDriver.getPrepare("insert into student values(?,?,?,?,?,?,?,?,?)");
     pstmt.setString(1, st.getUserid());
      pstmt.setString(2, st.getPassword());
      pstmt.setString(3, st.getFname());
      pstmt.setString(4, st.getLname());
      pstmt.setString(5, st.getQualification());
      pstmt.setString(6, st.getEmail());
      pstmt.setString(7, st.getMobile());
      pstmt.setString(8, st.getGender());
      
      pstmt.setBinaryStream(9, fis, (int)file.length());
      
      
      
      int i=pstmt.executeUpdate();
      if(i==1)
          return true;
    }
    
    
  }
     catch (Exception e) {
         e.printStackTrace();
        return false;
    }
    return false;
  }
     
     
     
   public static byte[] getBytesFromFile(File file) throws IOException {
    InputStream is = new FileInputStream(file);

    // Get the size of the file
    long length = file.length();

    // You cannot create an array using a long type.
    // It needs to be an int type.
    // Before converting to an int type, check
    // to ensure that file is not larger than Integer.MAX_VALUE.
    if (length > Integer.MAX_VALUE) {
        // File is too large
    }

    // Create the byte array to hold the data
    byte[] bytes = new byte[(int)length];

    // Read in the bytes
    int offset = 0;
    int numRead = 0;
    while (offset < bytes.length
           && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
        offset += numRead;
    }

    // Ensure all the bytes have been read in
    if (offset < bytes.length) {
        throw new IOException("Could not completely read file "+file.getName());
    }

    // Close the input stream and return bytes
    is.close();
    return bytes;
}
     
}
